Server device, communication system, method, and computer-readable storage medium

ABSTRACT

A server device includes: a receiving unit configured to receive, from each of a plurality of information-processing devices, location information showing a respective location of each information-processing device; a setting unit configured to set a condition showing that one information-processing device is close to another information-processing device, based on a predetermined parameter; a determining unit configured to determine whether a first information-processing device and a second information-processing device from among the plurality of information-processing devices satisfy the condition based on the location information received by the receiving unit; and a transmitting unit configured to transmit information determined at the determining unit to the first information-processing device and the second information-processing device, in a case that the determining unit determines that the first information-processing device and the second information-processing device satisfy the condition.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.13/454,135, filed on Apr. 24, 2012, and claims priority to JapanesePatent Application No. 2011-269919, filed Dec. 9, 2011, the contents ofeach of which are incorporated herein by reference.

TECHNICAL FIELD

The present invention relates to exchanging data between twoinformation-processing devices.

RELATED ART

Data exchange between two information-processing devices (for example,two portable game devices) that are proximate spatially, is known.

SUMMARY

In a related art, data exchange is performed when twoinformation-processing devices are located within a radio-wave range ofeach other.

The present invention provides flexibility in determining a conditionfor performing data exchange between two information-processing devices.

According to one aspect of the invention, there is provided a serverdevice including: a receiving unit configured to receive, from each of aplurality of information-processing devices, location informationshowing a respective location of each information-processing device; asetting unit configured to set a condition showing that oneinformation-processing device is close to another information-processingdevice, based on a predetermined parameter; a determining unitconfigured to determine whether a first information-processing deviceand a second information-processing device from among the plurality ofinformation-processing devices satisfy the condition based on thelocation information received by the receiving unit; and a transmittingunit configured to transmit information determined at the determiningunit to the first information-processing device and the secondinformation-processing device, in a case that the determining unitdetermines that the first information-processing device and the secondinformation-processing device satisfy the condition.

BRIEF DESCRIPTION OF THE DRAWINGS

Exemplary embodiments will now be described with reference to thefollowing drawings, wherein:

FIG. 1 shows a functional configuration of communication system 1;

FIG. 2 shows a hardware configuration of information-processing device10;

FIG. 3 shows a hardware configuration of server 40;

FIG. 4 is a sequence chart outlining an operation of communicationsystem 1;

FIG. 5 is a flowchart illustrating an operation for transmittinglocation information;

FIG. 6 shows an example of the location history;

FIG. 7 is a flowchart illustrating a data exchange process at server 40;

FIG. 8 shows an example of data recorded in database 411;

FIGS. 9A and 9B show an example of data exchange condition;

FIG. 10 shows an example of each of a temporal range and a spatial rangein relation to spatial densities of information-processing devices 10;

FIG. 11 shows an example of each of a temporal range and spatial rangein relation to a spatial density of information-processing devices 10;

FIG. 12 shows an example of data exchange list 412; and

FIG. 13 is a sequence chart illustrating an operation for transmittingresults of the data exchange.

DETAILED DESCRIPTION 1. Configuration

FIG. 1 shows a communication system in accordance with an exemplaryembodiment of the present invention. In communication system 1, twoinformation-processing devices, which are within the same temporal rangeand spatial range, exchange data with each other. Communication system 1includes information-processing device 10, communication network 30, andserver 40. Although in FIG. 1 only one information-processing device 10is shown, communication system 1 may include pluralinformation-processing devices 10. In the following description, todistinguish each of plural information-processing devices 10, subscriptsare used, such as information-processing device 10A andinformation-processing device 10B. Information-processing device 10 is adevice for execution of an application program. Communication network 30is a communication network for relay of data betweeninformation-processing device 10 and server 40, and can include avariety of networks such as, for example, the Internet, a mobilecommunication network, a wireless LAN (Local Area Network). Server 40 isa device for execution of a process for exchanging data between twoinformation-processing devices 10, which devices are within apredetermined temporal and spatial range.

In the related art, when two information-processing devices are within aradio-wave range of each other, whereby near field communication can beperformed between them, data is exchanged automatically. Incommunication system 1 of the present invention, data is exchanged viaserver 40.

Information-processing device 10 includes location information-obtainingunit 11, data-transmitting unit 12, storage unit 13, result-receivingunit 14, display unit 15, time information-obtaining unit 16, andcontrol unit 17. Storage unit 13 stores various data and programs. Inthis example, storage unit 13 stores user data set 135. Control unit 17executes a program, for example, an application program or otherprograms, and controls another elements of information-processing device10. Location information-obtaining unit 11 obtains location informationshowing a location of information-processing device 10, the locationinformation being used for determining whether twoinformation-processing devices 10 satisfy a condition for data exchange(hereinafter, referred to as “data exchange condition”). Timeinformation-obtaining unit 16 obtains time information corresponding tothe obtained location information, the time information also being usedfor determining whether the two information-processing devices 10satisfy the data exchange condition. Data-transmitting unit 12 transmitsto server 40 the location and time information, together with a dataset, and at server 40 it is determined whether data exchange conditionis satisfied and, if affirmative, the data exchange is performed atserver 40. More specifically, data-transmitting unit 12 transmits toserver 40, as information to be used to determine whether data exchangecondition is satisfied, the location information obtained by locationinformation-obtaining unit 11 and the time information obtained by timeinformation-obtaining unit 16. Further, data-transmitting unit 12transmits user data set 135 to server 40, which user data set is to beexchanged with user data of another information-processing device 10 bythe data exchange. Result-receiving unit 14 receives a result of thedata exchange performed at server 40, and the result of the dataexchange is displayed to a user via display unit 15 of the user'sinformation-processing device 10.

Server 40 includes data-receiving unit 41, storage unit 42,condition-setting unit 43, condition-determining unit 44,result-transmitting unit 45, spatial density-calculating unit 46, andcontrol unit 47. Data-receiving unit 41 receives frominformation-processing device 10 location information and user data set135 for the data exchange. Spatial density-calculating unit 46calculates, as a parameter for setting the data exchange condition, aspatial density of information-processing devices 10 based on thelocation information received by the data-receiving unit 41. The spatialdensity of information-processing devices 10 is calculated for eachgeographical unit (a predetermined geographic unit is, for example, aprefecture). Condition-setting unit 43 sets (or determines) dataexchange condition based on the spatial density ofinformation-processing devices 10 calculated by spatialdensity-calculating unit 46, which data exchange condition shows that afirst information-processing device 10 and a secondinformation-processing device 10 are temporally and spatially close. Thedata exchange condition indicates restrictions of spatial range andtemporal range in relation to first information-processing device 10.More specifically, condition-setting unit 43 sets spatial range andtemporal range in response to spatial density at a location shown by thelocation information received from information-processing device 10A.Condition-determining unit 44 determines whether information-processingdevice 10A and information-processing device 10B satisfy the dataexchange condition, based on location information and time informationof information-processing device 10A, and location information and timeinformation of information-processing device 10B. Result-transmittingunit 45 transmits predetermined information to information-processingdevice 10A and information-processing device 10B if it is determinedthat information-processing device 10A and information-processing device10B satisfy the data exchange condition.

FIG. 2 shows a hardware configuration of information-processing device10. In this example, information-processing device 10 is a portable gamedevice. Information-processing device 10 executes an application program(for example, a game program) stored in program medium 20.Information-processing device 10 is a computer device including CPU(Central Processing Unit) 110, RAM (Random Access Memory) 121, ROM (ReadOnly Memory) 122, cartridge IF 131, slot 132, mobile communicationmodule 140, SIM (Subscriber Identity Module)-IF 141, and SIM 142, inputmodule 151, display module 152, sound module 153, near fieldcommunication module 160, and GPS receiver 170.

CPU 110 is a control device (or a processing device) that controls otherhardware components of information-processing device 10. RAM 121 is aread/write storage device. ROM 122 is a read-only storage device. ROM122 stores, for example, an OS (Operating System) program, which issystem software of information-processing device 10 and otherapplication programs (not shown in the figures). In this example, RAM121 stores user data set 135 of a user of information-processing device10. User data set 135 includes, for example, an avatar image of a user,a user name, and a message.

Cartridge interface 131 is an interface that relays writing/reading datato/from program medium 20. Slot 132 has a predetermined form and size.Program medium 20 includes a housing (or case) (not shown in thefigures) containing ROM 210. The housing has a form and a sizecorresponding to slot 132. ROM 210 is a rewritable non-volatile memory;for example, a semiconductor memory. In other words, program medium 20is a ROM cartridge including a semiconductor memory. ROM 210 storesapplication program 211.

Mobile communication module 140 is a module for communicating via amobile communication network. Mobile communication module 140 includes,for example, an antenna and an amplifier. SIM IF 141 is an interfacethat relays writing/reading data to/from SIM 142. SIM 142 includes astorage device that stores an identification number to identify asubscriber in the mobile communication network.

Input module 151 is a module that inputs data to CPU 110, and includes,for example, a keypad, a touch screen, or a microphone. Display module152 is a module that displays an image in accordance with instructionsoutput from CPU 110. Display module 152 includes, for example, a liquidcrystal display and a driver circuit. Sound module 153 is a module thatoutputs sound in accordance with instructions output from CPU 110, andincludes, for example, a speaker and an amplifier.

Near field communication module 160 is a module for performingcommunication complying with a predetermined standard, for example, awireless LAN complying with IEEE 802.11. GPS receiver 170 receivessignals from plural GPS satellites (not shown in the figures), andcalculates global position (for example, latitude and longitude) byusing the received signals.

CPU 110 executing the OS program is an example of locationinformation-obtaining unit 11, time-obtaining unit 16, and control unit17. CPU 110 used in cooperation with mobile communication module 140 ornear field communication module 160 is an example of data-transmittingunit 12, and result-receiving unit 14. ROM 122, external memory 124, andRAM 121 are examples of storage unit 13.

FIG. 3 shows a hardware configuration of server 40. Server 40 is acomputer device including HDD (Hard Disk Drive) 410, CPU 420, ROM 421,RAM 422, and communication module 430. ROM 421 and RAM 422 are anon-volatile and a volatile storage device, respectively. HDD 410 is anonvolatile storage device. HDD 410 stores server program 414, database411, and data exchange list 412. Server program 414 is a program forcausing a computer device to function as server 40. CPU 420 is a controldevice that controls other components of server 40. Communication module430 is a device that communicates via the Internet, and includes, forexample, a network interface.

CPU 420 executing server program 414 implements the functions shown inFIG. 1. CPU 420 executing server program 414 is an example ofcondition-setting unit 43, condition-determining unit 44, spatialdensity calculating unit 46, and control unit 47. CPU 420 cooperatingwith communication module 430 is an example of data-receiving unit 41and result-transmitting unit 45. ROM 421, RAM 422, and HDD 410 areexamples of storage unit 42.

2. Operation 2-1. Outline of the Operation

FIG. 4 is a sequence chart illustrating an outline of an operation ofcommunication system 1. In step S10, information-processing device 10Aand information-processing device 10B respectively transmit to server 40their own location information. In step S20, server 40 performs dataexchange process based on the received location information. In stepS30, server 40 transmits results of the data exchange process toinformation-processing device 10A and information-processing device 10B.These processes are implemented as functions achieved by the OS programof information-processing device 10 and server program 414 of server 40.

2-2. Transmission of Location Information and Time Information

FIG. 5 is a flowchart illustrating an operation for transmitting thelocation information. The flow shown in FIG. 5 corresponds to step S10in FIG. 4. The flow shown in FIG. 5 is triggered by an instruction toinitiate the data exchange process. The instruction is input by, forexample, a user.

In step S101, CPU 110 obtains location information. In this example, CPU110 obtains location information from GPS receiver 170. Updated locationinformation is periodically obtained. Further, CPU 110 obtains timeinformation from a time-measuring unit such as a timer (not shown in thefigures). In this example, the location information and the timeinformation are transmitted to server 40 as a location history. Thelocation history includes plural sets of location information and timeinformation, obtained at different times. In step S102, CPU 110 recordsthe obtained location information and time information obtained in stepS101 into the location history. The location history is stored in RAM121.

FIG. 6 shows an example of the location history. The location historyincludes plural sets of data, each set of data including a time stampand corresponding location information. For example, the first row dataset indicates that information-processing device 10 is at north latitude35.682241 and east longitude 139.753411 on 9:45:00, Nov. 17, 2011.

Referring to FIG. 5 again, in step S103, CPU 110 determines whethertransmission of the location history is triggered. If it is determinedthat the transmission is triggered (S103: YES), CPU 110 transfers theoperation to step S104. If it is not determined that the transmission istriggered (S103: NO), CPU 110 transfers the operation to step S101. Inthis example, information-processing device 10 can communicate withserver 40 via two paths. One is a path via mobile communication module140 (in other words, via the mobile communication network); the other isa path via near field communication module 160 (in other words, viawireless LAN). Which path is used is determined, for example, inaccordance with an instruction input by a user. For example, ifinformation-processing device 10 is communicating via mobilecommunication module 140, an event that a predetermined time period haselapsed from a previous transmission of the location history is used asa trigger for transmission of the location history. As another example,if information-processing device 10 is communicating via near fieldcommunication module 160, an event that a connection is established witha wireless LAN access point is used as a trigger for transmission of thelocation history.

In step S104, CPU 110 transmits to server 40 the location history storedin RAM 121 and identification data of information-processing device 10(hereinafter referred to as “device ID.”) In this example, CPU 110transmits the location history along with user data set 135.

In step S105, CPU 110 resets the location history stored in RAM 121. Instep S106, CPU 110 determines whether termination is instructed. If itis not determined that termination is instructed (S106: NO), CPU 110transfers the operation to step S101. If it is determined thattermination is instructed (S106: YES), CPU 110 terminates the flow shownin FIG. 5.

2-3. Data Exchange Process

FIG. 7 is a flowchart illustrating the data exchange process at server40. The flow shown in FIG. 7 corresponds to step S20 in FIG. 4.

In step S201, CPU 420 determines whether CPU 420 receives locationinformation from information-processing device 10. If it is determinedthat the location information is received (S201: YES), CPU 420 transfersthe operation to step S202. If it is not determined that the locationinformation is received (S201: NO), CPU 420 transfers the operation tostep S203.

In step S202, CPU 420 records the received location history intodatabase 411. Further, CPU 420 stores in HDD 410 user data set 135,which is received along with the location history.

FIG. 8 shows an example of data recorded in database 411. Database 411includes plural sets of a device ID and corresponding location historyof information-processing device 10.

Referring to FIG. 7 again, in step S203, CPU 420 determines whetherdetermination of the condition for the data exchange is triggered. Thedetermination is triggered, for example, by an event, such as apredetermined time period having elapsed since the previousdetermination. If it is determined that the determination is triggered(S203: YES), CPU 420 transfers the operation to step S204. If it is notdetermined that the determination is triggered (S203: NO), CPU 420transfers the operation to step S201.

In step S204, CPU 420 calculates spatial density ofinformation-processing device 10. The spatial density is calculated foreach predetermined geographic unit. More specifically, the spatialdensity is calculated as follows. First, CPU 420 identifies a currentlocation of each of plural information-processing devices 10. A locationcorresponding to a time stamp, which is the closest to a predeterminedtime from among the location histories recorded in database 411, is usedas the current location. In another example, a location corresponding tothe last time stamp from among the location histories recorded indatabase 411, is used as the current location. Then, CPU 420 counts thenumber of information-processing devices 10 for each geographic unit,based on the identified current locations. Then, CPU 420 divides, foreach geographic unit, the number of information-processing devices 10 byan area of the geographic unit. It is to be noted that the relationshipbetween the location information and the geographic unit, and the areaof the geographic unit are pre-recorded in a database (not shown in thefigures) stored in HDD 410. In other words, the spatial density ofinformation-processing devices 10 is a function of the geographic unit.CPU 420 stores the calculated spatial density in RAM 422.

In step S205, CPU 420 identifies one information-processing device 10,which is a subject of the determination (hereinafter referred to as a“subject device”), from among plural information-processing devices 10.The subject devices are identified in a predetermined order, forexample, in ascending numerical order of the device IDs.

In step S206, CPU 420 sets (determines, or fixes) the data exchangecondition for the subject device. In this example, the data exchangecondition is that another information-processing device 10 (hereinafterreferred to as “another device”), with which the subject device performsthe data exchange, is within temporal range Rt and spatial range Rs inrelation to the subject device. Temporal range Rt is a parameterdefining a temporal range. For example, temporal range Rt definesduration before and after a reference time, which is defined as timewhen the subject device is located at a certain location. Spatial rangeRs is a parameter defining spatial range. For example, spatial range Rsdefines a radius of a circle whose center is the location of the subjectdevice. For a detailed example, in a case of Rt=±1 hour and Rs=50 m, ifanother device is located in a range within 50 m from the location ofthe subject device during a period of 1 hour prior to and 1 hoursubsequent to the reference time, data exchange is performed.

FIGS. 9A and 9B show an example of a data exchange condition. In thisexample, information-processing device 10A is the subject device andinformation-processing device 10B is another device. Here, only spatialrange Rs is shown, for simplicity of explanation. In this example,spatial range Rs defines an area within a circle whose center is thelocation of the subject device. In an example of FIG. 9A, since anotherdevice is outside the spatial range Rs, the data exchange condition isnot satisfied. Therefore, data exchange is not performed. In an exampleof FIG. 9B, since another device is inside the spatial range Rs, thedata exchange condition is satisfied.

FIGS. 10 and 11 show an example of temporal range and spatial range inrelation to spatial density of information-processing devices 10. CPU420 determines values of temporal range Rt and spatial range Rs based onspatial density at the location of the subject device. Spatial range Rssatisfies Rs (c1)≧Rs (c2). Here, Rs (c) shows the spatial range when thespatial density equals c. Temporal range Rt satisfies Rt (c1)≧Rt (c2).Here, Rt (c) shows the spatial range when the spatial density equals c.The spatial densities c1 and c2 are selected freely as long as c1<c2.For example, in more detail, spatial range Rs and temporal range Rtincrease together with an increase in the spatial density as long as thespatial density is smaller than threshold cth, and are constant as longas the spatial density is smaller that threshold cth. In other words, atlower spatial density, spatial range Rs and temporal range Rt arebroader. At higher spatial density, spatial range Rs and temporal rangeRt are narrower. It is to be noted that the profile shown in FIG. 10 ismerely an example. For example, temporal range Rt and spatial range Rsmay not be linear to the spatial density.

If the data exchange is performed when two devices are located withinradio-wave range of each other as described in JP-A-2011-000309, a userwho lives in an area whose spatial density is low (for example, alightly populated area), has less opportunity for the data exchange,compared with a user who lives in an area whose spatial density is high(for example, an urban area). Conversely, communication system 1provides (especially for users located in an area whose spatial densityis low) a higher opportunity for data exchange compared with a case thatthe data exchange condition is constant and independent from the spatialdensity of the information-processing device 10.

Referring to FIG. 7 again, in step S207, CPU 420 determines whetherthere exists another device that satisfies the data exchange condition,based on the location history recorded in database 411. If it isdetermined that no information-processing device 10 satisfies the dataexchange condition (S207: NO), CPU 420 transfers the operation to stepS209. If it is determined that there exists another device thatsatisfies the data exchange condition (S207: YES), CPU 420 transfers theoperation to step S208.

In step S208, CPU 420 records in data exchange list 412 informationrelating to the subject device, and information relating to anotherdevice that satisfies the data exchange condition. Data exchange list412 is stored in HDD 410.

FIG. 12 shows an example of data exchange list 412. Data exchange list412 includes at least one set (record) of information relating to thesubject device and another device, a time stamp indicating when the dataexchange condition is satisfied, and location information. Theinformation relating to the device includes a device ID, anidentification of a user data set (for example, a filename and a filedirectory), and a transmission flag. For the time stamp indicating whenand the location information indicating where the data exchangecondition is satisfied, a time stamp and location information recordedin the location history of the subject device are used. The transmissionflag indicates whether a result of the data exchange has beentransmitted. In an example of FIG. 12, for information-processing device10 having a device ID “0000001,” a result of the data exchange is nottransmitted yet. For information-processing device 10 having a device ID“0000002,” a result of the data exchange has already been transmitted.

In this example, once the data exchange is performed between twoinformation-processing devices 10, subsequent data exchange is notperformed until a predetermined time period has elapsed. Therefore, evenif it is determined that the data exchange condition is satisfied instep S207 for two information-processing devices 10, CPU 420 does notrecord the two information-processing devices 10 into data exchange list412 in a case that the two information-processing devices 10 are alreadyrecorded in data exchange list 412 and the predetermined time period hasnot elapsed since the previous data exchange.

Referring to FIG. 7 again, in step S209, CPU 420 determines whether allinformation-processing devices 10 are processed as the subject device.If it is determined that all information-processing devices 10 areprocessed as the subject device (S209: YES), CPU 420 resets database411. After resetting database 411, CPU 420 transfers the operation tostep S201. If it is determined that there is an information-processingdevice 10 that is not processed as the subject device (S209: NO), CPU420 transfers the operation to step S205. In this case, CPU 420 updatesthe subject device, and executes the processes in step S206 to S208.

2-4. Transmission of results of data exchange

FIG. 13 is a sequence chart illustrating an operation for transmittingresults of the data exchange. In step S301, CPU 110 ofinformation-processing device 10A transmits to server 40 a request fortransmitting results of the data exchange (hereinafter referred to as a“results request.”) The results request includes the device ID ofinformation-processing device 10A. The transmission of the resultsrequest is triggered by a predetermined event. For example, ifinformation-processing device 10 is communicating via mobilecommunication module 140 (in other words, via the mobile communicationnetwork), the transmission of the results request is triggered by anevent that a predetermined time period has elapsed since the previousreception of the results. In another example, if information-processingdevice 10 is communicating via near field communication module 160 (inother words, via wireless LAN), the transmission of the results requestis triggered by an event that a connection with a wireless LAN accesspoint has been established.

In step S302, CPU 420 of server 40 searches for the results of the dataexchange with information-processing device 10A, from data exchange list412. More specifically, CPU 420 searches data exchange list 412 for adata set that includes the device ID of information-processing device10A as the subject device or another device and that has a transmissionflag “not yet.” In an example shown in FIG. 12, the record of the toprow is extracted.

In step S303, CPU 420 transmits a result of the data exchange inresponse to the extracted record. In this example, a result of the dataexchange includes a user data set from another device. For example, ifan information-processing device 10 that transmits the results requestis recorded as the subject device, the results of the data exchangeinclude a user data set of another device. The user data set is anexample of provided data. The provided data include, for example, anavatar image of a user, a username, and a message. If aninformation-processing device 10 that transmits the results request isrecorded as another device, the results of the data exchange include auser data set of the subject device. More specifically, CPU 420 readsthe required user data set from HDD 410, and generates a resultincluding the read user data set. CPU 420 transmits the generated resultto information-processing device 10A, which is a source of the resultsrequest.

On receiving the results of the data exchange, CPU 420 overwrites thecorresponding transmission flag with “done” in data exchange list 412.Further, if transmission flags of the subject device and another deviceboth indicate “done,” CPU 420 deletes the record from data exchange list412.

In step S304, CPU 110 of information processing device 10A controlsdisplay module 152 to show the received results.

As described above, communication system 1 provides flexibility in thedata exchange condition, compared with a case that the temporal rangeand spatial range are constant.

3. Modification

The present invention is not restricted to the embodiment describedabove. Various modifications can be applied to the exemplary embodiment.Some modifications will be described below. Two or more modificationsfrom among the following modifications may be combined.

3-1. First modification

A parameter used to setting the data exchange condition is notrestricted to an example (spatial density of information-processingdevice 10 and the location of the subject device) described in theexemplary embodiment. Condition-setting unit 43 may set the dataexchange condition based on the following parameter, instead of or aswell as, the spatial density of information-processing device 10 and thelocation of the subject device. Further, condition-setting unit 43 maycombine at least two parameters from among the following parameters, soas to determine the data exchange condition.

3-1-1. Location of Another Device

The location of another device may be used as follows. In step S207, CPU420 identifies one information-processing device 10 as a candidate ofanother device (hereinafter referred to as a “candidate device”). Pluralinformation-processing devices 10, of which the location history isrecorded, are identified as the candidate device one by one, in apredetermined order. CPU 420 calculates coefficient k by using thespatial density at the candidate location. Coefficient k is, forexample, a monotonically decreasing function of the spatial density. Themaximum value of coefficient k is greater than 1, and the minimum valueof coefficient k is less than 1. CPU 420 determines whether thecandidate device satisfies the data exchange condition, by usingtemporal range Rt and spatial range Rs to which coefficient k ismultiplied, as parameters to determine whether the data exchangecondition is satisfied. In this example, if the subject device andanother device are in an area having lower spatial density, apossibility of the data exchange can be raised compared with a case thatthe spatial density of another device is not considered.

3-1-2. User Attribute

The user attribute may be used as follows. In this example, the userattribute includes a “friend list,” which shows association of pluralusers. The friend list includes device IDs of information-processingdevices 10 owned by other users, who are friends of the user. CPU 420changes the value of coefficient k in response to the candidate deviceand the friend list. More specifically, if the candidate device isincluded in the friend list, CPU 420 increases coefficient k. If thecandidate device is not included in the friend list, CPU 420 decreasescoefficient k. CPU 420 determines whether the candidate device satisfiesthe data exchange condition, by using temporal range Rt and spatialrange Rs to which coefficient k is multiplied, as parameters todetermine whether the data exchange condition is satisfied. In thisexample, if users of the subject device and another device are friends,a possibility of data exchange can be raised compared with a case thatthey are not friends. It is to be noted that the user attribute is notrestricted to friendships. Another attribute, for example, age, sex, orblood type, may be used. In such a case, the user attribute of thesubject device is compared with the user attribute of the candidatedevice. If it is determined that these user attributes are close oranalogous, CPU 420 may increase coefficient k so as to increase thepossibility of data exchange.

3-1-3. Device Attribute

The device attribute may be used as follows. The device attribute is anattribute, for example, a model, of information-processing device 10. Ifthe model of the subject device or the candidate device is identicalwith a specific model, CPU 420 may increase coefficient k so as toincrease the possibility of data exchange.

3-1-4. Environmental Factors

The environmental factor may be used as follows. The environmentalfactor is a factor relating to environment of communication system 1,for example, time or weather. If it is night time or if it rains, CPU420 may increase coefficient k so as to increase the possibility of dataexchange.

3-2. Second Modification

Parameters used by condition-setting unit 43 to set the data exchangecondition are not restricted to both temporal range Rt and spatial rangeRs. Condition-setting unit 43 may set only one of temporal range Rt andspatial range Rs. For example, temporal range Rt may be constant andspatial range Rs may be determined in response to a parameter.

3-3. Third Modification

In a case that a parameter other than the spatial density; for example,the user attribute, is used to determine the data exchange condition, atiming when server 40 obtains the parameter, is not restricted to atiming simultaneous with the location history. For example,information-processing device 10 may transmit the user attribute toserver 40, at a different timing from that of transmitting the locationhistory. In this case, storage unit 42 stores a database recording theuser attributes. Server 40 stores the received user attribute in thedatabase. When determining the data exchange condition,condition-setting unit 43 refers to the database.

3-4. Fourth Modification

In the data exchange process, provided data, which are exchanged betweenthe subject device and another device, are not restricted to an exampledescribed in the embodiment. For example, the provided data may be adata set used by a game program stored in program medium 20 or a dataset generated by the game program.

3-5. Fifth Modification

The spatial density used to set the data exchange condition is notrestricted the example described in the embodiment. For example, thespatial density may be calculated by a resource other than server 40. Inthis case, server 40 obtains the spatial density from the resource.Further, the spatial density is not restricted to the spatial density ofinformation-processing devices 10. For example, a spatial density of theusers of information-processing devices 10, or a population density, maybe used as the spatial density.

3-6. Sixth Modification

The location information obtained by location information-obtaining unit11 is not restricted to the location information calculated by GPSreceiver 170.

For example, an identification of a base station that is communicatingwith mobile communication module 140, may be used as the locationinformation. Alternatively, an identification of a wireless LAN accesspoint that is communicating with near field communication module 160,may be used as the location information.

3-7. Seventh Modification

The time information used to set the data exchange condition need not betransmitted from information-processing device 10 to server 40. In sucha case, instead of information-processing device 10, server 40 includesa time-obtaining unit. For example, information-processing device 10periodically transmits the location information to server 40. Server 40adds to the received location information the time information obtainedby the time-obtaining unit, and stores a set of the location informationand the time information as the location history in database 41.

3-8. Other Modifications

The functional configuration and the hardware configuration ofinformation-processing device 10 are not restricted to examples shown inFIGS. 1 and 2. At least a part of the functional elements shown in FIG.1 and at least a part of the hardware elements may be omitted.

The information-processing device 10 and the program medium 20 are notrestricted to a game device and a game medium. The storage unit 21 maystore an application program other than a game program; for example, anapplication program for editing a document, an educational applicationprogram, or a business application program. In another example, theinformation-processing device 10 may be an information-processing deviceother than a game device, for example, a personal computer, a mobilephone, a PDA (Personal Digital Assistant), or a tablet device.

A program executed by a processor such as the CPU 101 may be provided ina non-statutory computer readable storage medium; for example, amagnetic medium (for example, magnetic tape, magnetic disk (for example,a hard disk, a flexible disk, etc)), an optical medium (for example, anoptical disk such as CD (Compact Disk) or DVD (Digital Versatile Disk)),a magnetic optical medium, a semiconductor memory (for example, a flashmemory). Further, the program may be downloaded via a network; forexample, the Internet.

What is claimed is:
 1. A server device comprising: a receiving unitconfigured to receive first data from a first information-processingdevice, the first data being to be provided from the firstinformation-processing device to another information-processing device;a first obtaining unit configured to obtain a first identificationinformation showing an identification of an access point to which thefirst information-processing device connected; a second obtaining unitconfigured to obtain a second identification information showing anidentification of an access point to which the secondinformation-processing device connected; and a transmitting unitconfigured to transmit to the second information-processing device thefirst data received from the first information-processing device, if thefirst identification information and the second identificationinformation satisfy a predetermined condition.
 2. The server deviceaccording to claim 1, wherein the receiving unit is further configuredto receive second data from the second information-processing device,the second data being to be provided from the firstinformation-processing device to another information-processing device,and the transmitting unit is further configured to transmit to the firstinformation-processing device the second data received from the secondinformation-processing device, if the first identification informationand the second identification information satisfy the predeterminedcondition.
 3. The server device according to claim 1, wherein the firstdata is used in a game program.
 4. A computer-readable non-transitorystorage medium storing a program causing a computer to execute aprocess, the process comprising: receiving first data from a firstinformation-processing device, the first data being to be provided fromthe first information-processing device to anotherinformation-processing device; obtaining a first identificationinformation showing an identification of an access point to which thefirst information-processing device connected; obtaining a secondidentification information showing an identification of an access pointto which the second information-processing device connected; andtransmitting to the second information-processing device the first datareceived from the first information-processing device, if the firstidentification information and the second identification informationsatisfy a predetermined condition.
 5. A method comprising: receivingfirst data from a first information-processing device, the first databeing to be provided from the first information-processing device toanother information-processing device; obtaining a first identificationinformation showing an identification of an access point to which thefirst information-processing device connected; obtaining a secondidentification information showing an identification of an access pointto which the second information-processing device connected; andtransmitting to the second information-processing device the first datareceived from the first information-processing device, if the firstidentification information and the second identification informationsatisfy a predetermined condition.
 6. An information-processing systemcomprising: a receiving unit configured to receive first data from afirst information-processing device, the first data being to be providedfrom the first information-processing device to anotherinformation-processing device; a first obtaining unit configured toobtain a first identification information showing an identification ofan access point to which the first information-processing deviceconnected; a second obtaining unit configured to obtain a secondidentification information showing an identification of an access pointto which the second information-processing device connected; and atransmitting unit configured to transmit to the secondinformation-processing device the first data received from the firstinformation-processing device, if the first identification informationand the second identification information satisfy a predeterminedcondition.